#ifndef __MSQLCONN_H__
#define __MSQLCONN_H__
#include <mysql/mysql.h>
#include <iostream>

using namespace std;

class MysqlConn
{
public:
    /* 初始化数据库连接 */
    MysqlConn();
    
    /* 释放数据库连接 */
    ~MysqlConn();

    /* 连接数据库 */
    bool connect( string  host,  string  user,  string  passwd,  string  dbname);

    /* 更新数据库 */
    bool update( string  sql);
    
    /* 制定Sql查询语句（select），返回一个结果集，结果集从服务器端保存到客户端 */
    bool query( string  sql);

    /* 遍历查询得到的结果集 */
    bool next();
    
    /* 得到结果集中的字段值 */
    string value(int index);

    /* 事务操作 */
    bool transaction();

    /* 提交事务 */
    bool commit();

    /* 事务回滚 */
    bool rollback();

private:
    void freeResult();

    /* 数据库句柄 */
    MYSQL * m_conn = nullptr;         // mysql_init()的返回值,需要释放
    MYSQL_RES * m_result = nullptr;   // 结果集， 需要释放
    MYSQL_ROW  m_row = nullptr;       // 结果集释放则m_row就释放了
    // const char * m_host;    // 主机地址IP，本地可以写localhost（域名）或127.0.1
    // const char * m_user;    // 连接服务器的用户名(一般是root)
    // const char * m_passwd;  // 服务器用户的密码

};





#endif